/**forEach() 方法对数组的每个元素执行一次给定的函数
 * foreach内部遍历数组调用回调函数，因此foreach通过return 中断不了循环
 * @param {*} callback
 * return undefined
 */
Array.prototype.myForEach = function (callback) {
  if (typeof callback !== "function")
    throw new TypeError("callback must be a function");
  const len = this.length;

  for (let i = 0; i < len; i++) {
    callback(this[i], i, this);
  }
};

// eg
let arr = [1, 2, 3, 4];
arr.myForEach((item, i, arr) => {
  console.log("[ item ] >", item, i, arr);
});
